//最终得到的终保日期（即：将通过天数和起保日期计算得到的终保日期减去一天，才是最终的终保日期）
function getYestoday(date){       
    var yesterday_milliseconds=date.getTime()-1000*60*60*24;        
    var yesterday = new Date();        
        yesterday.setTime(yesterday_milliseconds);        
         
    var strYear = yesterday.getFullYear();     
    var strDay = yesterday.getDate();     
    var strMonth = yesterday.getMonth()+1;   
    if(strMonth<10)     
    {     
        strMonth="0"+strMonth;     
    }     
	if(strDay<10)     
	{     
		strDay="0"+strDay;     
	}     
	datastr = strYear+"-"+strMonth+"-"+strDay;   
    return datastr;   
}

//根据 起保日期:date1 、终保日期：date2 计算这两个日期之间相差的月份数。
function getMonthDiff(startDate,endDate){
	startDate=new Date(startDate.replace(/-/g,'/'));
	endDate=new Date(endDate.replace(/-/g,'/'));
	//alert("startDate--------"+startDate+"--------endDate------"+endDate);
	var num=0;
	var year=endDate.getFullYear()-startDate.getFullYear();
	num+=year*12;
	var month=endDate.getMonth()-startDate.getMonth();
	num+=month;
	var day=endDate.getDate()-startDate.getDate();
	if(day>0){
		num+=1;
	}else if(day<0){}
	return num;
}

//计算两个日期之间的天数
function getDateDiff(startDate,endDate)  
{  
    var dates = Math.abs((startDate.getTime() - endDate.getTime()))/(1000*60*60*24);     
    return  dates;    
}

//date 日期  year年数 计算 天数
function processDayByYear(date,year){
	var date1=new Date(date.getTime());
	date.setFullYear(Number(date.getFullYear())+Number(year));
	var date3=new Date(date.getTime());
	return getDateDiff(date1,date3);
}

//date 日期  month 月数 计算 天数
function processDayByMonth(dateTemp,monthNum){
	var date1=new Date(dateTemp.getTime());
	dateTemp.setMonth(Number(dateTemp.getMonth())+Number(monthNum));
	var date3=new Date(dateTemp.getTime());
	return getDateDiff(date1,date3);
}

//根据起保日期、年份/月份计算终保日期
Date.prototype.calTermDateByMonthOrYear=function (startDate,type1,num1,insuredFlag)
{
	if(num1==null) num1=1;
	var tempDate=this.getDate();
	switch(type1)
	{
		case 'M':	this.setMonth(Number(this.getMonth())+Number(num1)); break ;
		case 'Y':	this.setYear(Number(this.getFullYear())+Number(num1)); break ;	
	}
//	if(tempDate!=this.getDate()) this.setDate(0);
	
	/**当前月的30号，加一个月则自然是下个月的30号:
	 * 1、有些情况不是30号（例2月份加一个月，最终日期会变成3月份）此时，就取上个月的最后一天即2.28/2.29。其他月份同理
	 * 2、如果是30号，则取最终日期的前一天（因为24:00）
	 * 3、即时起保 为 “是”，起保日期和终保日期的年月日一致；为“否”，终保日期取前一天
	 */
	var flag = false;
	if(tempDate!=this.getDate())
	{
		this.setDate(0);	//设置为上月最后一天，即上个月最大的日
		if(Number(tempDate) <= Number(this.getDate()))
		{
			this.setDate(Number(this.getDate()-1));
		}
	}else{
		flag = true;
	}
	
	var year = this.getFullYear();  
	var month = this.getMonth() + 1;  
	if (month < 10) month = "0" + month;  
	var date2 = this.getDate();
	if (date2 < 10) date2 = "0" + date2;
	var nowSuredTermDate = year + "-" + month + "-" + date2;		//即时起保对应的终保日期
	var notNowSuredTermDate1 = getYestoday(this);		//非即时起保对应的终保日期
	var notNowSuredTermDate2 = year + "-" + month + "-" + date2;		//非即时起保对应的终保日期
	startDate = startDate+"";
	var leftTime = startDate.substring(11,13)+"";
	var termDateVal;
	if(insuredFlag=="N"){
		var termDateVal;
		if(flag){
			termDateVal = notNowSuredTermDate1 +" 24:00:00";	
		}else{
			termDateVal = notNowSuredTermDate2 +" 24:00:00";
		}
	    $('#termDate').val(termDateVal);
	}else{
		if(leftTime == "00"){
			termDateVal = notNowSuredTermDate1 + " "+(leftTime == "00" ? "24:00:00" : leftTime+":00:00");
		}else{
			termDateVal = nowSuredTermDate + " "+(leftTime == "00" ? "24:00:00" : leftTime+":00:00");
		}
	    $('#termDate').val(termDateVal);
	}
}

//根据起保日期、年份/月份计算终保日期
Date.prototype.calTermDateByMonthOrYearForNoCarProd=function (startDate,type1,num1)
{
	if(num1==null) num1=1;
	var tempDate=this.getDate();
	switch(type1)
	{
		case 'M':	this.setMonth(Number(this.getMonth())+Number(num1)); break ;
		case 'Y':	this.setYear(Number(this.getFullYear())+Number(num1)); break ;	
	}
	/**当前月的30号，加一个月则自然是下个月的30号:
	 * 1、有些情况不是30号（例2月份加一个月，最终日期会变成3月份）此时，就取上个月的最后一天即2.28/2.29。其他月份同理
	 * 2、如果是30号，则取最终日期的前一天（因为24:00）
	 * 3、即时起保 为 “是”，起保日期和终保日期的年月日一致；为“否”，终保日期取前一天
	 */
	var flag = false;
	if(tempDate!=this.getDate())
	{
		this.setDate(0);	//设置为上月最后一天，即上个月最大的日
		if(Number(tempDate) <= Number(this.getDate()))
		{
			this.setDate(Number(this.getDate()-1));
		}
	}else{
		flag = true;
	}
	var year = this.getFullYear();  
	var month = this.getMonth() + 1;  
	if (month < 10) month = "0" + month;  
	var date2 = this.getDate();
	if (date2 < 10) date2 = "0" + date2;
	var notNowSuredTermDate1 = getYestoday(this);	//非即时起保对应的终保日期
	var notNowSuredTermDate2 = year + "-" + month + "-" + date2;//非即时起保对应的终保日期
	startDate = startDate+"";
	var termDateVal;
	if(flag){
		termDateVal = notNowSuredTermDate1;	
	}else{
		termDateVal = notNowSuredTermDate2;
	}
    $('#termDate').val(termDateVal);
}